package dados;

import negocios.Insumo;
import javax.swing.JOptionPane;
import java.sql.SQLException;

public class BancoInsumos implements IBancoInsumos {
	
	private static BancoInsumos bancoInsumos = null;

    private BancoInsumos() {

        // Contrutor privado, padrao singleton.

    }

   public static BancoInsumos getInstance() {

        if (bancoInsumos == null) {

            bancoInsumos = new BancoInsumos();

        }

        return bancoInsumos;

    }

	@Override public Insumo consultarInsumo(Insumo insumo) {

        try {

            ConectaBDInsumos conexao = new ConectaBDInsumos();

            return conexao.consultarInsumo(insumo);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;
	}

	@Override public void editarInsumo(Insumo insumo) {

        try {

            ConectaBDInsumos conexao = new ConectaBDInsumos();

            conexao.editarInsumo(insumo);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da edição", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

	@Override
	public void excluirInsumo(Insumo insumo) {

        try {

            ConectaBDInsumos conexao = new ConectaBDInsumos();

            conexao.excluirInsumo(insumo);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da remoção", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

    }

	@Override
	public void inserirInsumo(Insumo insumo) {

        try {

            ConectaBDInsumos conexao = new ConectaBDInsumos();

            conexao.inserirInsumo(insumo);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

	@Override
	public Object[] listarInsumos() {

        try {

            ConectaBDInsumos conexao = new ConectaBDInsumos();

            return conexao.listarInsumos();

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;

	}

}
